export const compression = async function (file, content) {
    const hasSizeImg = await getImgSize(content)
    let imgWidth = hasSizeImg.width
    let imgHeight = hasSizeImg.height

    if (/\/(?:jpeg|png)/i.test(file.type)) {
        // 对于小于300Kb并且宽度小于1125的图片 不需要压缩
        if (file.size < 300000 && imgWidth < 1125) {
            return false
        }
        if (imgWidth > 1125) {
            {
                // 针对尺寸特别大的图片，宽度最宽设置为1125  3X图的屏宽(750*1.5 = 1125)
                // 为什么进行这一步操作  因为3X图1125宽度已经能满足了 所以不需要更大的
                const scaleOfWAndH = imgHeight / imgWidth  // 长宽比
                imgWidth = 1125
                imgHeight = scaleOfWAndH * imgWidth
            }
        }

        // 创建Canvas对象（画布）
        let canvas = document.createElement('canvas')
        let context = canvas.getContext('2d')
        let img = new Image()
        img.src = content
        return img.onload = (() => {
            canvas.width = imgWidth
            canvas.height = imgHeight
            // const fileSize = img.fileSize
            context.drawImage(img, 0, 0, imgWidth, imgHeight)
            //0.92 在指定图片格式为 image/jpeg 或 image/webp的情况下，可以从 0 到 1 的区间内选择图片的质量。如果超出取值范围，将会使用默认值 0.92。其他参数会被忽略。
            return canvas.toDataURL(file.type, 0.92)
        })()
    } else {
        console.log({'content': content})
        return content
    }
}
function getImgSize (url) {
    let img = new Image()
    return new Promise((resolve, reject) => {
        img.src = url
        img.onload = () => {
            resolve(img)
        }
        img.onerror = () => {
            reject(img)
        }
    })
}